/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.seguridad.controlador;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import sv.com.intesal.clases.Mensaje;
import sv.com.intesal.conexion.cConexion;
import sv.com.intesal.seguridad.bean.Formulario;
import sv.com.intesal.seguridad.sql.SQLFormulario;

/**
 *
 * @author JM
 */
public class FormularioControlador {

    public List<Formulario> fillGrid() throws Exception {
        List<Formulario> list = new ArrayList<Formulario>();
        try {
            ResultSet rs = cConexion.conectar().prepareStatement(SQLFormulario.buscarFormularios).executeQuery();
            while (rs.next()) {
                Formulario f = new Formulario();
                f.setCodigo_f(rs.getInt("codigo_f"));             
                f.setNombre_f(rs.getString("nombre_f"));
                f.setNombre_form_f(rs.getString("nombre_form_f"));

                f.setNombre_m(rs.getString("nombre_m"));
                f.setCodigo_m(rs.getInt("codigo_m"));

                list.add(f);
            }
            return list;
        } catch (Exception ex) {
            list = null;
            throw new Exception(ex);
        } finally {
            return list;
        }
    }

    public void mantenimientoFormulario(Formulario formulario) throws Exception {

        PreparedStatement ps = null;
        Connection cnn = null;

        try {
            cnn = cConexion.conectar();
            if (formulario.getCodigo_f() == null) {
                ps = cnn.prepareStatement(SQLFormulario.insertFormulario);
            } else {
                ps = cnn.prepareStatement(SQLFormulario.updateFormulario);
                ps.setInt(4, formulario.getCodigo_f());
            }

            ps.setInt(1, formulario.getCodigo_m());
            ps.setString(2, formulario.getNombre_f());
            ps.setString(3, formulario.getNombre_form_f());
            ps.executeUpdate();            

            RolesControlador rc = new RolesControlador();
            rc.insert_Formulario_Usuario_Roles();

            PerfilUsuarioControlador pu=new PerfilUsuarioControlador();
            pu.insert_Perfil_Formulario_PerfilUsuario();

            Mensaje m = new Mensaje();
            if (formulario.getCodigo_f() == null) {
                m.messageInfo(m.getIinformation());
            } else {
                m.messageInfo(m.getImodificada());
            }

        } catch (Exception ex) {
            throw new Exception(ex);
        }
    }

    public Integer getMax() throws Exception {
        try {
            ResultSet rs = cConexion.conectar().prepareStatement(SQLFormulario.getMax).executeQuery();
            rs.next();
            return rs.getInt("max");
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    public ResultSet getFormularios() throws Exception {
        try {
            ResultSet rs = cConexion.conectar().prepareStatement(SQLFormulario.buscarFormularios).executeQuery();
            return rs;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }
}